Skip to content

sync(upstream): superseded by 2026-04-24 branch#7

Closed
boggedbrush wants to merge 34 commits into
mainfrom
sync/upstream-2026-04-17
Closed

sync(upstream): superseded by 2026-04-24 branch#7
boggedbrush wants to merge 34 commits into
mainfrom
sync/upstream-2026-04-17

Conversation

@boggedbrush
Copy link
Copy Markdown
Owner

@boggedbrush boggedbrush commented Apr 18, 2026

Superseded by the dated sync branch sync/upstream-2026-04-24 for the 2026-04-24 automation run. The branch head was carried forward from this PR and the new PR targets main.

Upstream-Ref: pingdotgg/t3code@f9019cd

Adapted-by: kept Kodo non-interactive fetch hardening while adopting per-remote refresh coalescing
…tup (#2005)

Upstream-Ref: pingdotgg/t3code@9dcea68

Adapted-by: kept Kodo server test scaffolding while porting the runtime refresh fix
…cleanup (#2004)

Upstream-Ref: pingdotgg/t3code@c9b07d6

Adapted-by: merged new shell-summary projections into Kodo migration registry and pipeline state
@boggedbrush
Copy link
Copy Markdown
Owner Author

Sync Date: 2026-04-17
Upstream Range: e3004ae..b2cca67
Upstream Branch: pingdotgg/t3code/main

Applied changes

  • Remove Claude subscription-based model adjustment (678f827f)
  • Handle deleted git directories as non-repositories (e0e01b4a)
  • Quote editor launch args on Windows to support paths with spaces (2fce84a1)
  • Align token usage metrics for both Claude and Codex (7a008461)
  • Fix lost provider session recovery (d18e43b6)
  • Improve shell PATH hydration and fallback detection (2e42f3fd)
  • Prevent user-input activities from leaking into pending approvals projection (d22c6f52)
  • Extend negative repository identity cache TTL (d90e15d1)
  • Add Kiro editor support to open picker (5f7becf3)

Manually adapted changes

  • Coalesce status refreshes by remote (f9019cd6) — adapted: kept Kodo's non-interactive git fetch hardening while porting per-remote refresh coalescing
  • Refresh git status after branch rename and worktree setup (9dcea68b) — adapted: preserved Kodo's existing server test harness while porting the runtime refresh behavior
  • Backfill projected shell summaries and stale approval cleanup (c9b07d66) — adapted: merged the projection and migration updates into Kodo's current persistence pipeline without taking unrelated upstream UI work

Manual-review test changes

  • apps/server/src/server.test.ts — reason: upstream server test scaffold conflicted with Kodo's current runtime/auth test harness, so the existing Kodo coverage was preserved

Skipped upstream frontend changes

  • Add provider skill discovery (58e5f714) — reason: backend value is tied to upstream composer/menu UI flows
  • Allow empty server threads to bootstrap new worktrees (801b83e9) — reason: heavily coupled to upstream branch-toolbar/chat UI behavior
  • fix(claude): emit plan events for TodoWrite during input streaming (0d280262) — reason: tied to upstream plan/composer surfaces that differ in Kodo
  • Add filesystem browse API and command palette project picker (44afe784) — reason: mixed backend/UI commit centered on upstream command palette and project-creation UX
  • Build for Windows ARM (6891c77d) — reason: conflicts with Kodo's custom release/packaging pipeline

Potential follow-up items

  • Revisit 4ae9de31 auth/session cookie hardening against Kodo's newer auth/bootstrap implementation
  • Evaluate a Kodo-specific port of provider skill discovery from 58e5f714
  • Investigate the existing apps/web typecheck failures around @base-ui/react/* resolution and ButtonProps

Confirmation

  • No Kodo QoL changes overwritten
  • No Kodo theming/branding changes overwritten
  • No Kodo frontend workflow/UX changes overwritten
  • No upstream UI-specific tests merged without review

@boggedbrush
Copy link
Copy Markdown
Owner Author

Added a small upstream-style UX batch to pr-7:

  • assistant messages now expose the same hover copy action as user messages
  • sidebar thread timestamps now prefer latestUserMessageAt, so recency reflects the last user message instead of generic thread update time
  • truncated sidebar thread titles show the full title on hover
  • composer file mention pills show the full path on hover
  • markdown/code blocks reserve right-side space for the copy button so it no longer sits on top of long lines

Validation on this batch:

  • bun run --cwd apps/web test src/components/chat/MessagesTimeline.test.tsx src/components/Sidebar.logic.test.ts
  • bun fmt
  • bun lint

bun typecheck still hits the same pre-existing pr-7 server-side failures in GitCore, ProjectionPipeline, ProviderCommandReactor, and ClaudeAdapter; this batch did not introduce new typecheck failures.

@boggedbrush
Copy link
Copy Markdown
Owner Author

Backend/runtime/tooling changes applied

  • Added upstream migration f297e30e to clean invalid pending approval projections.
  • Ported ed6b7fbf so workspace search respects gitignored files through the server workspace layer, with regression coverage.
  • Ported 721b6b4c so stopped sessions preserve provider bindings instead of deleting them outright.
  • Restored Kodo's missing 023_ProjectionThreadShellSummary migration file so the branch migration registry is internally consistent.

Mixed commits adapted

  • ed6b7fbf was adapted instead of cherry-picked to keep only the server-layer wiring and focused test.
  • 721b6b4c was adapted to preserve Kodo's existing provider/session scaffolding while fixing stop-session persistence.

Selective frontend changes ported

  • Ported 0f184c28 so Ctrl+J still toggles the terminal when focus is inside xterm on Windows.

Deferred selective frontend candidates

  • 39ca3ee8 Global terminal shortcuts from focused xterm: deferred after landing the narrower Ctrl+J fix first; looks safe for a future PR.
  • 60387f67 Show restore-defaults only on General settings: deferred because Kodo's settings surface is already diverging; likely safe with visual review.

Checks run

  • bun fmt
  • bun lint
  • bun typecheck ⚠️ pre-existing apps/web Base UI / ButtonProps typing failures unrelated to this sync diff.
  • cd apps/web && bun run test src/keybindings.test.ts
  • cd apps/server && bun run test src/server.test.ts src/provider/Layers/ProviderService.test.ts src/provider/Layers/ProviderSessionDirectory.test.ts src/orchestration/Layers/ProviderCommandReactor.test.ts ⚠️ blocked by pre-existing module/test-environment issues (multipasta/node resolution, plus the branch had been missing migration 023 before the local restore).

Blockers or follow-ups

  • No branch-protection blocker on main.
  • Best next follow-up is the Windows PATH repair commit a7a44d06, but it should be handled as its own bounded runtime-focused pass.

@boggedbrush boggedbrush changed the title sync(upstream): 2026-04-17 sync(upstream): 2026-04-18 Apr 18, 2026
No new upstream main commits beyond 9df3c640 were available.

Also fixes branch-local typecheck drift so bun fmt, bun lint, and bun typecheck pass cleanly on the active sync PR branch.
@boggedbrush boggedbrush changed the title sync(upstream): 2026-04-18 sync(upstream): 2026-04-19 Apr 19, 2026
@boggedbrush
Copy link
Copy Markdown
Owner Author

Backend/runtime/tooling changes applied

  • No new upstream backend/runtime/tooling commits were available beyond pingdotgg/t3code@9df3c640.
  • Added a branch-local compatibility cleanup so the active sync branch stays healthy against current Effect/contracts APIs and passes required validation.

Mixed commits adapted

  • None in this run.

Selective frontend changes ported

  • None in this run.

Deferred selective frontend candidates

  • 39ca3ee8 Global terminal shortcuts from focused xterm: still deferred; looks safe for a future PR.
  • 60387f67 Restore-defaults button limited to General settings: still deferred pending visual review against Kodo settings divergence.

Checks run

  • bun fmt
  • bun lint
  • bun typecheck

Blockers or follow-ups

  • No branch-protection blocker on main.
  • Upstream main was unchanged since the 2026-04-18 review, so this run was a bounded no-op sync on import scope.
  • Manual-review candidates still parked: 8dba2d64, a7a44d06, 40009735, 4e0c003e.

PR title changes made during the run

  • Previous title: sync(upstream): 2026-04-18
  • New title: sync(upstream): 2026-04-19
  • The title was refreshed to the current run date.

Upstream-Ref: pingdotgg/t3code@44afe784

Adapted-by: ported the backend browse API and a focused Sidebar folder browser without taking upstream command-palette or project-flow rewrites
@boggedbrush
Copy link
Copy Markdown
Owner Author

Backend/runtime/tooling changes applied

  • Ported the backend portion of upstream 44afe784 by adding a new filesystem.browse contracts/RPC surface.
  • Added server-side directory browsing through WorkspaceEntries.browse() and routed it through the WebSocket RPC layer.

Mixed commits adapted

  • 44afe784 was adapted instead of cherry-picked so Kodo could keep its existing project/workflow surfaces while still gaining the browse API.

Selective frontend changes ported

  • Added a focused inline folder browser to the Sidebar add-project flow.
  • The new browser uses the server-side browse API instead of the desktop system folder picker, which improves navigation quality without importing upstream command-palette UI.

Deferred selective frontend candidates

  • 39ca3ee8 Global terminal shortcuts from focused xterm: still deferred; looks safe for a future PR.
  • 60387f67 Restore-defaults button limited to General settings: still deferred pending visual review against Kodo settings divergence.

Checks run

  • cd apps/server && bun run test src/workspace/Layers/WorkspaceEntries.test.ts -t browse
  • cd apps/server && bun run test src/server.test.ts -t filesystem.browse
  • cd apps/web && bun run test src/wsNativeApi.test.ts src/lib/projectPaths.test.ts
  • bun fmt
  • bun lint
  • bun typecheck

Blockers or follow-ups

  • No branch-protection blocker on main.
  • The broader cd apps/server && bun run test src/server.test.ts -t "projects.searchEntries excludes gitignored files" case still fails, but that is adjacent existing search behavior rather than this new browse RPC path.

@boggedbrush
Copy link
Copy Markdown
Owner Author

Selection rationale for the browse port from upstream 44afe784:

We selected only the parts that solve the concrete Kodo problem: the system folder browsers are weak, especially for quick project adds, so we pulled over the reusable filesystem browse API and wired it into Kodo's existing Sidebar add-project flow.

What was selected:

  • the contracts/RPC surface for filesystem.browse
  • the server-side directory browsing implementation in WorkspaceEntries
  • the minimal web client wiring needed to call that API
  • a Kodo-specific inline folder browser in the Sidebar

What was intentionally not selected:

  • the upstream command palette project picker
  • the surrounding command-palette state/model changes
  • broader project creation workflow changes coupled to upstream UI architecture

Why this selection was the right boundary:

  • it fixes the immediate UX problem without importing upstream workflow assumptions
  • it preserves Kodo-specific project/worktree flows and avoids command-palette churn
  • it keeps the sync branch reviewable and lowers regression risk
  • it leaves room to evaluate any broader browse/picker UX separately if Kodo wants that later

The contracts package already serves types from src/index.ts, so bundling declaration output during workspace builds is redundant and was tripping rolldown-plugin-dts on Windows during dev:server startup.
boggedbrush and others added 5 commits April 19, 2026 14:14
(cherry picked from commit f6978db60553716a9974b9e85f855bae8124905d)
…s (#2192)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
(cherry picked from commit 8dbcf92a0d125050988474f258df3e55c538efec)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: = <=>
(cherry picked from commit 20f346d8ef58b21c339bc956c1728f4f16d09a87)
@boggedbrush boggedbrush changed the title sync(upstream): 2026-04-19 sync(upstream): 2026-04-20 Apr 20, 2026
@boggedbrush
Copy link
Copy Markdown
Owner Author

Backend/runtime/tooling changes applied

  • Ported upstream f6978db6 so Turbo now passes through PATHEXT on Windows without dropping Kodo's existing dev-runner passthrough env vars.

Mixed commits adapted

  • Ported upstream 20f346d8 by adding a shared server-side expandHomePath helper and wiring Codex session startup, Codex CLI version checks, Codex git text generation, and Codex provider probes through expanded CODEX_HOME values.
  • Folded the same helper into Kodo's existing os-jank and workspace-path normalization code so the sync branch does not carry three separate ~ expansion implementations.
  • Ported upstream 8dbcf92a by switching the Claude capability probe to a never-yielding initialization prompt, preserving Kodo's current subscription-only probe shape while avoiding Anthropic API requests.

Selective frontend changes ported

  • None in this run.

Deferred selective frontend candidates

  • 6d1505c9 Right panel sheet below title bar/action bar: deferred because Kodo's desktop/title-bar behavior already diverges; likely safe for a future PR after visual review.

Checks run

  • Required local checks could not be run in this automation environment because both bun and node are unavailable on PATH and not installed at the expected user locations.
  • Because of that environment limitation, bun fmt, bun lint, bun typecheck, and targeted runtime tests remain unverified from this runner.

Blockers or follow-ups

  • No branch-protection blocker on main.
  • 3b98fe35 (effect-codex-app-server) remains a manual-review candidate for a future dedicated sync.
  • 306ec4bb (OpenCode lifecycle refactor) remains a manual-review candidate for a future dedicated sync.
  • 37965da0 (OpenCode text response parsing) was reviewed but skipped because this sync branch does not currently carry the upstream OpenCode text-generation layer shape that commit modifies.

PR title changes made during the run

  • Previous title: sync(upstream): 2026-04-19
  • New title: sync(upstream): 2026-04-20
  • The title was refreshed to the current run date.

@boggedbrush boggedbrush changed the title sync(upstream): 2026-04-20 sync(upstream): 2026-04-21 Apr 21, 2026
@boggedbrush
Copy link
Copy Markdown
Owner Author

Backend/runtime/tooling changes applied

  • None in this run. The reviewed upstream window did not contain a bounded backend/runtime/tooling change that fit Kodo's current architecture without importing upstream-only OpenCode or desktop-runtime behavior.

Mixed commits adapted

  • None.

Selective frontend changes ported

  • None.

Deferred selective frontend candidates

  • None in this reviewed window.

Checks run

  • bun install
  • bun fmt
  • bun lint
  • bun typecheck

Blockers or follow-ups

  • No branch-protection blocker on main.
  • 3a1daa87 (Add close buttons to toasts) remains a manual-review candidate because it is a broad cross-surface web change touching Kodo-owned Sidebar, settings, command palette, chat, and shared toast primitives.
  • 40b3a800 and 055897f0 were skipped because this sync branch does not carry the upstream OpenCode provider layer, and 055897f0 also couples in desktop window-reveal behavior Kodo intentionally owns.

PR title changes made during the run

  • Previous title: sync(upstream): 2026-04-20
  • New title: sync(upstream): 2026-04-21
  • The title was refreshed to the current run date.

@boggedbrush boggedbrush changed the title sync(upstream): 2026-04-21 sync(upstream): 2026-04-22 Apr 22, 2026
@boggedbrush
Copy link
Copy Markdown
Owner Author

Backend/runtime/tooling changes applied

  • b8305afa ported by increasing the shared Claude auth probe timeout from 4s to 10s in apps/server/src/provider/providerSnapshot.ts and apps/server/src/provider/Layers/ClaudeProvider.ts, reducing first-run auth probe flakiness on slower environments.

Mixed commits adapted

  • b7c89cf4 adapted only for the Kodo-owned Codex account surface: apps/server/src/provider/codexAccount.ts now recognizes prolite, relabels pro as ChatGPT Pro 20x Subscription, and exposes prolite as ChatGPT Pro 5x Subscription.
  • Added regression coverage in apps/server/src/provider/Layers/ProviderRegistry.test.ts and apps/server/src/codexAppServerManager.test.ts to keep Spark gating and auth labels aligned with the new plan handling.
  • Deliberately did not import the upstream protocol/codegen refresh because this repo does not vendor the upstream generated binding package and the remaining event/schema changes would be a separate larger adaptation.

Selective frontend changes ported

  • None.

Deferred selective frontend candidates

  • None.

Checks run

  • bun install
  • bun fmt
  • bun lint (passes with two pre-existing warnings in apps/server/src/os-jank.ts and apps/server/src/persistence/Layers/ProjectionThreads.ts)
  • bun typecheck

Blockers or follow-ups

  • No blocking overlap was found with other open PRs for the server-side files touched in this run.
  • No Kodo branding, theming, workflow, settings, project/worktree flow, or desktop-runtime behavior was overwritten.

PR title changes made during the run

  • Previous title: sync(upstream): 2026-04-21
  • New title: sync(upstream): 2026-04-22
  • Refreshed the title to the current run date.

Upstream-Ref: pingdotgg/t3code@e25db3a5

Upstream-Ref: pingdotgg/t3code@aa2d385a

Upstream-Ref: pingdotgg/t3code@fd3b96b4

Upstream-Ref: pingdotgg/t3code@b0b7b38d

Adapted-by: ported atomic config writes and remaining CODEX_HOME expansion paths without importing upstream-only provider cache/runtime modules
@boggedbrush
Copy link
Copy Markdown
Owner Author

Backend/runtime/tooling changes applied

  • b0b7b38d ported by expanding apps/server/src/processRunner.ts command-not-found detection to cover localized Windows cmd.exe stderr, with regression coverage in apps/server/src/processRunner.test.ts.
  • fd3b96b4 ported by teaching apps/server/src/project/Layers/ProjectFaviconResolver.ts to recognize .idea/icon.svg, with focused resolver coverage in apps/server/src/project/Layers/ProjectFaviconResolver.test.ts.

Mixed commits adapted

  • e25db3a5 adapted by adding apps/server/src/atomicWrite.ts and rewiring apps/server/src/keybindings.ts plus apps/server/src/serverSettings.ts to use UUID-backed temp directories for atomic writes; the upstream providerStatusCache and serverRuntimeState modules do not exist on this Kodo branch, so they were intentionally not imported.
  • aa2d385a adapted by expanding CODEX_HOME in the remaining Kodo-equivalent Codex paths: apps/server/src/provider/Layers/CodexProvider.ts now expands before reading config.toml, and apps/server/src/provider/usage/modules/codexUsageModule.ts expands before codex login status.

Selective frontend changes ported

  • None.

Deferred selective frontend candidates

  • None in this reviewed window.

Checks run

  • bun install
  • bun fmt
  • bun lint (passes with the same two pre-existing warnings in apps/server/src/os-jank.ts and apps/server/src/persistence/Layers/ProjectionThreads.ts)
  • bun typecheck
  • cd apps/server && bun run test src/processRunner.test.ts src/project/Layers/ProjectFaviconResolver.test.ts

Blockers or follow-ups

  • No branch-protection blocker on main.
  • No overlapping open PR was found for the backend/tooling files touched in this run.
  • No Kodo branding, theming, workflow, settings surface, project/worktree flow, or desktop-runtime behavior was overwritten.

PR title changes made during the run

  • Previous title: sync(upstream): 2026-04-22
  • New title: sync(upstream): 2026-04-23
  • Refreshed the title to the current run date.

@boggedbrush boggedbrush changed the title sync(upstream): 2026-04-22 sync(upstream): 2026-04-23 Apr 23, 2026
@boggedbrush boggedbrush changed the title sync(upstream): 2026-04-23 sync(upstream): superseded by 2026-04-24 branch Apr 24, 2026
@boggedbrush boggedbrush deleted the sync/upstream-2026-04-17 branch May 18, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants